package Bill.app.serveur;


import java.io.*;
import java.net.Socket;
 
import java.util.List;
import java.util.StringTokenizer;

 
import Bill.app.serveur.bean.Abonnes;

class ThreadNouveauCompte extends Thread
{
 

    ThreadNouveauCompte(Socket paquet, String mess)
    {
        this.paquet = null;
        this.paquet = paquet;
        this.mess = mess;
         
        start();
    }

    public void run()
    {
        PrintWriter ecriture = null;
        try
        {
            ecriture = new PrintWriter(new BufferedWriter(new OutputStreamWriter(paquet.getOutputStream())), true);
        }
        catch(IOException e2)
        {
            e2.printStackTrace();
        }
        StringTokenizer t = new StringTokenizer(mess, ":");
        String mes = "";
        t.nextToken();
        String t1 = t.nextToken();
        try
        {
            if(!existeDeja(t1.trim())&& creerCompte(t1, t.nextToken().trim(), t.nextToken().trim(), t.nextToken().trim()))
            {
               
                mes = "votre compte a \351t\351 cr\351e avec succ\350s!!";
                ecriture.println(mes);
            } else
            {
                mes = "login_error";
                ecriture.println(mes);
                ecriture.close();
            }
        }
        catch(Throwable e)
        {
            e.printStackTrace();
        }
        
        Thread.yield();
    }

    public boolean creerCompte(String login, String pass, String tel, String pays)
    {try{
    	Abonnes ab = new Abonnes();
    	ab.setEtatCompte(Abonnes.COMPTE_ACTIVE);
    	ab.setLogin(login);
    	ab.setPass(pass);
    	 ab.setPays(pays);
    	 ab.setTel(tel);
    	SERVEUR.getEm().save(ab);
    	 
    	
    	 
    	 
    	 return true;
    }catch(Exception e){
    	return false;
    }
    	 
    }

    public boolean existeDeja(String text)
        throws Throwable
    {
         
       Abonnes ab = loadAbonneByLogin(text);
       
       
       
      // System.out.println("exist?:"+ab+"\n");
       return null!=ab;
    }

    private Abonnes loadAbonneByLogin(String login) {
		// TODO Auto-generated method stub
    	 return SERVEUR.getEm().loadAbonneByLogin(login);
	}

	String mess;
    Socket paquet;
}
